package com.capgemini.diabeo;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.NavUtils;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;

import com.capgemini.diabeo.settings.SettingsActivity;

/**
 * An activity representing a single AddDish detail screen. This activity is
 * only used on handset devices. On tablet-size devices, item details are
 * presented side-by-side with a list of items in a {@link AddDishListActivity}.
 * <p>
 * This activity is mostly just a 'shell' activity containing nothing more than
 * a {@link AddDishDetailFragment}.
 */
public class AddDishDetailActivity extends FragmentActivity {

	public static final String PREFS_NAME = "PrefsDishes";
	public CheckBox cbToUncheck;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_adddish_detail);

		LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View vi = inflater.inflate(R.layout.listview_dishes, null);
		cbToUncheck = (CheckBox)vi.findViewById(R.id.checkbox_dish);
		if(MealChoice.mealChoice.equals("autre"))
		{
			cbToUncheck.setVisibility(2);
		}
		// Show the Up button in the action bar.
		getActionBar().setDisplayHomeAsUpEnabled(true);
		
		// savedInstanceState is non-null when there is fragment state
		// saved from previous configurations of this activity
		// (e.g. when rotating the screen from portrait to landscape).
		// In this case, the fragment will automatically be re-added
		// to its container so we don't need to manually add it.
		// For more information, see the Fragments API guide at:
		//
		// http://developer.android.com/guide/components/fragments.html
		//
		if (savedInstanceState == null) {
			// Create the detail fragment and add it to the activity
			// using a fragment transaction.
			Bundle arguments = new Bundle();
			arguments.putString(AddDishDetailFragment.ARG_ITEM_ID, getIntent()
					.getStringExtra(AddDishDetailFragment.ARG_ITEM_ID));
			AddDishDetailFragment fragment = new AddDishDetailFragment();
			fragment.setArguments(arguments);
			getSupportFragmentManager().beginTransaction()
			.add(R.id.adddish_detail_container, fragment).commit();
		}
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.choicedish, menu);
		if(MealChoice.mealChoice.equals("autre"))
		{
			menu.findItem(R.id.menu_save).setVisible(false);
		}
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case android.R.id.home:
			// This ID represents the Home or Up button. In the case of this
			// activity, the Up button is shown. Use NavUtils to allow users
			// to navigate up one level in the application structure. For
			// more details, see the Navigation pattern on Android Design:
			//
			// http://developer.android.com/design/patterns/navigation.html#up-vs-back
			//
			NavUtils.navigateUpTo(this, new Intent(this,
					AddDishListActivity.class));
					return true;
		case R.id.menu_save:
			cbToUncheck.setChecked(false);
			Intent i = new Intent(this, DishDisplay.class);
			startActivity(i);
			break;
		case R.id.action_settings:
			Intent i2 = new Intent(this, SettingsActivity.class);
			startActivity(i2);
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	} 

	//Fonction appel�e au clic d'une des checkbox
	public void MyHandler(View v) {
		SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
		SharedPreferences.Editor editor = settings.edit();
		CheckBox cb = (CheckBox) v;
		Boolean checkboxClicked=false;
		String id = cb.getTag().toString();
		if (cb.isChecked()) {
			checkboxClicked = true;
			//Toast.makeText(v.getContext(), "Vous avez choisi le plat avec ID: " + id, Toast.LENGTH_LONG).show();
		} else {					
			checkboxClicked = false;
		}

		if(checkboxClicked)
		{					
			editor.putString("ID"+id, id);
			editor.commit();
		}else
		{
			editor.remove("ID"+id);
			editor.commit();
		}
	}
}
